package 多线程; // 定义包名

public class threeThreadUsingJoin { // 定义类，用于演示使用join方法控制线程执行顺序
    public static void main(String[] args) { // 主方法，程序的入口
        
        Thread t1 = new Thread(() -> { // 创建第一个线程
            System.out.println("thread 1...run..."); // 输出线程1的运行信息
        });

        Thread t2 = new Thread(() -> { // 创建第二个线程
            try {
                t1.join(); // 等待线程1执行完毕
            } catch (InterruptedException e) { // 捕获中断异常
                e.printStackTrace(); // 打印异常堆栈
            }
            System.out.println("thread 2...run..."); // 输出线程2的运行信息
        });

        Thread t3 = new Thread(() -> { // 创建第三个线程
            try {
                t2.join(); // 等待线程2执行完毕
            } catch (InterruptedException e) { // 捕获中断异常
                e.printStackTrace(); // 打印异常堆栈
            }
            System.out.println("thread 3...run..."); // 输出线程3的运行信息
        });

        t1.start(); // 启动线程1
        t2.start(); // 启动线程2
        t3.start(); // 启动线程3
    }
}
